#ifndef TOMOGRAPHRENDERWIDGET_H
#define TOMOGRAPHRENDERWIDGET_H

#include "GL/glew.h"
#include "BaseRenderWidget.hpp"
#include "Rendering/BaseRender.hpp"
#include "QMouseEvent"
#include "Eigen.h"
//#include "ui_TomographRenderWidget.h"
using namespace rtrt;

class TomographRenderWidget : public BaseRenderWidget
{
	Q_OBJECT

public:
	EIGEN_MAKE_ALIGNED_OPERATOR_NEW
	//! Constructor
	TomographRenderWidget(BaseRender *renderObject = NULL,  //!< Used rendering object 
		QWidget    *parent       = NULL //!< Parent widget
		);
	//! Destructor
	~TomographRenderWidget();

	//! Used rendering object
	BaseRender* renderObject();

	//! Sets rendering object.
	void setRenderObject( BaseRender *render //!< Rendering object 
		);
	//! Mouse's move event handler
	void mouseMoveEvent    ( QMouseEvent *event );

	void wheelEvent( QWheelEvent *event );

	//void keyPressEvent ( QKeyEvent *e //! Keyboard's event 
	//	);

private:
	//Ui::TomographRenderWidget ui;

	 BaseRender *_renderObject;
	 Matrix3f * rotateAroundAxis;
	 Transform3f transform;
};

#endif // TOMOGRAPHRENDERWIDGET_H

